import { db } from '../index';
import { runUserSeeds } from './01_users';
import { runSettingSeeds } from './02_settings';
import { runContactSeeds } from './03_contacts';
import { runCategorySeeds } from './04_categories';
import { runProductSeeds } from './05_products';
import { runCaseSeeds } from './06_cases';
import { runSystemLogSeeds } from './07_system_logs';
/**
 * 运行所有种子数据
 * 按照依赖顺序执行
 */
export async function runAllSeeds() {
  try {
    console.log('🌱 开始运行种子数据...');
    
    // 按照依赖顺序运行种子数据
    await runUserSeeds();
    console.log('✅ 用户种子数据完成');
    
    await runSettingSeeds();
    console.log('✅ 系统设置种子数据完成');
    
    await runContactSeeds();
    console.log('✅ 联系人种子数据完成');
    
    await runCategorySeeds();
    console.log('✅ 分类种子数据完成');
    
    await runProductSeeds();
    console.log('✅ 产品种子数据完成');
    
    await runCaseSeeds();
    console.log('✅ 案例种子数据完成');
    
    await runSystemLogSeeds();
    console.log('✅ 系统日志种子数据完成');
    
    console.log('🎉 所有种子数据运行完成!');
    
  } catch (error) {
    console.error('❌ 种子数据运行失败:', error);
    throw error;
  }
}

/**
 * 清空所有数据
 */
export async function clearAllData() {
  try {
    console.log('🗑️ 开始清空数据...');
    
    // 导入所有表
    const { banners, cases, products, caseCategories, productCategories, contacts, settings, users } = await import('../schema');
    
    // 按照反向依赖顺序清空数据
    await db.delete(banners);
    console.log('✅ 清空表 banners');
    
    await db.delete(cases);
    console.log('✅ 清空表 cases');
    
    await db.delete(products);
    console.log('✅ 清空表 products');
    
    await db.delete(caseCategories);
    console.log('✅ 清空表 case_categories');
    
    await db.delete(productCategories);
    console.log('✅ 清空表 product_categories');
    
    await db.delete(contacts);
    console.log('✅ 清空表 contacts');
    
    await db.delete(settings);
    console.log('✅ 清空表 settings');
    
    await db.delete(users);
    console.log('✅ 清空表 users');
    
    console.log('🎉 数据清空完成！');
    
  } catch (error) {
    console.error('❌ 数据清空失败:', error);
    throw error;
  }
}

// 如果直接运行此文件，则执行种子数据
if (import.meta.main) {
  runAllSeeds().catch(console.error);
}